<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<title>SOAP with Attachments API for Java - The Java EE 5 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2008-10-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/j5eetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level2"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<p class="toc level2"><a href="bnafd.html">4.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnagx.html">5.&nbsp;&nbsp;JavaServer Pages Technology</a></p>
<p class="toc level2"><a href="bnajo.html">6.&nbsp;&nbsp;JavaServer Pages Documents</a></p>
<p class="toc level2"><a href="bnakc.html">7.&nbsp;&nbsp;JavaServer Pages Standard Tag Library</a></p>
<p class="toc level2"><a href="bnalj.html">8.&nbsp;&nbsp;Custom Tags in JSP Pages</a></p>
<p class="toc level2"><a href="bnaon.html">9.&nbsp;&nbsp;Scripting in JSP Pages</a></p>
<p class="toc level2"><a href="bnaph.html">10.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="bnaqz.html">11.&nbsp;&nbsp;Using JavaServer Faces Technology in JSP Pages</a></p>
<p class="toc level2"><a href="bnatx.html">12.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="bnavg.html">13.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnawo.html">14.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="bnaxu.html">15.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">16.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="bnazf.html">17.&nbsp;&nbsp;Binding between XML Schema and Java Classes</a></p>
<p class="toc level2"><a href="bnbdv.html">18.&nbsp;&nbsp;Streaming API for XML</a></p>
<div class="onpage">
<p class="toc level2"><a href="">19.&nbsp;&nbsp;SOAP with Attachments API for Java</a></p>
</div>
<p class="toc level3"><a href="bnbhg.html">Overview of SAAJ</a></p>
<p class="toc level4"><a href="bnbhg.html#bnbhh">SAAJ Messages</a></p>
<p class="toc level5"><a href="bnbhg.html#bnbhi">The Structure of an XML Document</a></p>
<p class="toc level5"><a href="bnbhg.html#bnbhj">What Is in a Message?</a></p>
<p class="toc level5"><a href="bnbhg.html#bnbho">SAAJ and DOM</a></p>
<p class="toc level4 tocsp"><a href="bnbhg.html#bnbhp">SAAJ Connections</a></p>
<p class="toc level5"><a href="bnbhg.html#bnbhq"><tt>SOAPConnection</tt> Objects</a></p>
<p class="toc level3 tocsp"><a href="bnbhr.html">SAAJ Tutorial</a></p>
<p class="toc level4"><a href="bnbhr.html#bnbhs">Creating and Sending a Simple Message</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbht">Creating a Message</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhu">Parts of a Message</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhv">Accessing Elements of a Message</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhw">Adding Content to the Body</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhx">Getting a <tt>SOAPConnection</tt> Object</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhy">Sending a Message</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbhz">Getting the Content of a Message</a></p>
<p class="toc level4 tocsp"><a href="bnbhr.html#bnbia">Adding Content to the Header</a></p>
<p class="toc level4"><a href="bnbhr.html#bnbib">Adding Content to the <tt>SOAPPart</tt> Object</a></p>
<p class="toc level4"><a href="bnbhr.html#bnbic">Adding a Document to the SOAP Body</a></p>
<p class="toc level4"><a href="bnbhr.html#bnbid">Manipulating Message Content Using SAAJ or DOM APIs</a></p>
<p class="toc level4"><a href="bnbhr.html#bnbie">Adding Attachments</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbif">Creating an <tt>AttachmentPart</tt> Object and Adding Content</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbig">Accessing an <tt>AttachmentPart</tt> Object</a></p>
<p class="toc level4 tocsp"><a href="bnbhr.html#bnbih">Adding Attributes</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbii">Header Attributes</a></p>
<p class="toc level4 tocsp"><a href="bnbhr.html#bnbin">Using SOAP Faults</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbio">Overview of SOAP Faults</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbip">Creating and Populating a <tt>SOAPFault</tt> Object</a></p>
<p class="toc level5"><a href="bnbhr.html#bnbir">Retrieving Fault Information</a></p>
<p class="toc level3 tocsp"><a href="bnbis.html">Code Examples</a></p>
<p class="toc level4"><a href="bnbis.html#bnbit">Request Example</a></p>
<p class="toc level4"><a href="bnbis.html#bnbja">Header Example</a></p>
<p class="toc level5"><a href="bnbis.html#bnbjb">Building and Running the Header Example</a></p>
<p class="toc level4 tocsp"><a href="bnbis.html#bnbjc">DOM and DOMSource Examples</a></p>
<p class="toc level5"><a href="bnbis.html#bnbjd">Examining the <tt>DOMExample</tt> Class</a></p>
<p class="toc level5"><a href="bnbis.html#bnbje">Examining the <tt>DOMSrcExample</tt> Class</a></p>
<p class="toc level5"><a href="bnbis.html#bnbjf">Building and Running the DOM and DOMSource Examples</a></p>
<p class="toc level4 tocsp"><a href="bnbis.html#bnbjg">Attachments Example</a></p>
<p class="toc level5"><a href="bnbis.html#bnbjh">Building and Running the Attachments Example</a></p>
<p class="toc level4 tocsp"><a href="bnbis.html#bnbji">SOAP Fault Example</a></p>
<p class="toc level5"><a href="bnbis.html#bnbjj">Building and Running the SOAP Fault Example</a></p>
<p class="toc level3 tocsp"><a href="bnbjk.html">Further Information about SAAJ</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="bnbls.html">20.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="bnbnb.html">21.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="bnboc.html">22.&nbsp;&nbsp;Session Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">23.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;V&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">24.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="bnbrl.html">25.&nbsp;&nbsp;Persistence in the Web Tier</a></p>
<p class="toc level2"><a href="bnbrs.html">26.&nbsp;&nbsp;Persistence in the EJB Tier</a></p>
<p class="toc level2"><a href="bnbtg.html">27.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level1 tocsp"><a href="bnbwi.html">Part&nbsp;VI&nbsp;Services</a></p>
<p class="toc level2"><a href="bnbwj.html">28.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bnbyk.html">29.&nbsp;&nbsp;Securing Java EE Applications</a></p>
<p class="toc level2"><a href="bncas.html">30.&nbsp;&nbsp;Securing Web Applications</a></p>
<p class="toc level2"><a href="bncdq.html">31.&nbsp;&nbsp;The Java Message Service API</a></p>
<p class="toc level2"><a href="bncgv.html">32.&nbsp;&nbsp;Java EE Examples Using the JMS API</a></p>
<p class="toc level2"><a href="bncih.html">33.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">34.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncjx.html">35.&nbsp;&nbsp;Connector Architecture</a></p>
<p class="toc level1 tocsp"><a href="bnckn.html">Part&nbsp;VII&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="bncko.html">36.&nbsp;&nbsp;The Coffee Break Application</a></p>
<p class="toc level2"><a href="bnclz.html">37.&nbsp;&nbsp;The Duke's Bank Application</a></p>
<p class="toc level1 tocsp"><a href="gexbq.html">Part&nbsp;VIII&nbsp;Appendixes</a></p>
<p class="toc level2"><a href="bncno.html">A.&nbsp;&nbsp;Java Encoding Schemes</a></p>
<p class="toc level2"><a href="bncnq.html">B.&nbsp;&nbsp;Preparation for Java EE Certification Exams</a></p>
<p class="toc level2"><a href="bncnt.html">C.&nbsp;&nbsp;About the Authors</a></p>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td width="705px">
         <div class="header">
             <div class="header-links-top">
                 <a href="http://java.sun.com">java.sun.com</a> |
                 <a href="http://docs.sun.com/">docs.sun.com</a><br>
             </div> 
             <img src="graphics/tutorialBanner.gif" width="704" height="120" alt="The Java&trade; EE 5 Tutorial"/>
             <div class="header-links">
	         <a href="index.html">Home</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/download.html">Download</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf">PDF</a> |
                 <a href="http://java.sun.com/javaee/5/docs/api/index.html">API</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/faq.html">FAQ</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/search.html">Search</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/sendusmail.html">Feedback</a> |
                 <a href="http://java.sun.com/javaee/5/docs/tutorial/information/history.html">History</a>
             </div>
             <div class="navigation">
                 <a href="bnbhe.html"><img style="padding-right: 3px" src="graphics/leftButton.gif" border="0"></a>
                 <a href="sjsaseej2eet.html"><img style="padding-right: 3px" src="graphics/upButton.gif" border="0"></a>
                 <a href="bnbhg.html"><img style="padding-left: 3px" src="graphics/rightButton.gif" border="0"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             <a name="bnbhf"></a><h3>Chapter&nbsp;19</h3><h3>SOAP with Attachments API for Java</h3><a name="indexterm-1887"></a><a name="indexterm-1888"></a><p>SOAP with Attachments API for Java (SAAJ) is used mainly for the
SOAP messaging that goes on behind the scenes in JAX-WS handlers and JAXR
implementations. Secondarily, it is an API that developers can use when they choose
to write SOAP messaging applications directly rather than use JAX-WS. The SAAJ API allows
you to do XML messaging from the Java platform: By simply making
method calls using the SAAJ API, you can read and write SOAP-based XML
messages, and you can optionally send and receive such messages over the Internet
(some implementations may not support sending and receiving). This chapter will help you learn
how to use the SAAJ API.</p><p><a name="indexterm-1889"></a><a name="indexterm-1890"></a><a name="indexterm-1891"></a>The SAAJ API conforms to the Simple Object Access Protocol (SOAP) 1.1 and
1.2 specifications and the SOAP with Attachments specification. The SAAJ 1.3 specification defines
the <tt>javax.xml.soap</tt> package, which contains the API for creating and populating a
SOAP message. This package has all the API necessary for sending request-response messages. (Request-response
messages are explained in <a href="bnbhg.html#bnbhq"><tt>SOAPConnection</tt> Objects</a>.)</p>
<hr><p><b>Note - </b><a name="indexterm-1892"></a>The  <tt>javax.xml.messaging</tt> package, defined in the Java API for XML Messaging (JAXM) 1.1
specification, is not part of the Java EE platform and is not discussed
in this chapter. The JAXM API is available as a separate download from
 <a href="http://java.sun.com/xml/downloads/jaxm.html">http://java.sun.com/xml/downloads/jaxm.html</a>.</p>
<hr>
<p>This chapter starts with an overview of messages and connections, giving some of
the conceptual background behind the SAAJ API to help you understand why certain
things are done the way they are. Next, the tutorial shows you how
to use the basic SAAJ API, giving examples and explanations of the
commonly used features. The code examples in the last part of the tutorial
show you how to build an application. The case study in <a href="bncko.html">Chapter&nbsp;36, The Coffee Break Application</a> includes
SAAJ code for both sending and consuming a SOAP message.</p>
         </div>
         <div class="navigation">
             <a href="bnbhe.html"><img style="padding-right: 3px" src="graphics/leftButton.gif" border="0"></a>
             <a href="sjsaseej2eet.html"><img style="padding-right: 3px" src="graphics/upButton.gif" border="0"></a>
             <a href="bnbhg.html"><img style="padding-left: 3px" src="graphics/rightButton.gif" border="0"></a>
         </div>

         <div class="copyright">
      	    <p>The material in The Java&trade; EE 5 Tutorial is <a href='docinfo.html'>copyright</a>-protected and may not be published in other works without express written permission from Sun Microsystems.</p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

